Skip to main content

Tracker Output

Once a tracker is running, it produces track-level outputs that describe each ongoing track. It's important to understand what information is provided for each track and how to interpret it:

Update Context Metadata

These fields describe the context in which the tracker was updated:

  • project_id
    The ID of the Chariot project that owns the tracker.

  • model_id
    The model whose inference output was used to generate this tracker update.

  • inference_id
    The specific inference that served as the source of detections for this update.

  • tracker_id
    The unique identifier of the tracker instance that processed this update.

  • tracker_kind
    The configured kind of the tracker (e.g., box_unitless, point_latitude_longitude), specifying how to interpret track data.

  • sequence_number
    A monotonically increasing integer representing the order of the input (e.g., frame number). Useful for reconstructing timeline order.

  • ts
    The time stamp when the frame or event arrived at the sensor.

  • tracks
    A list of TrackOutput objects describing the current state of each track after the update.


Per-Track Metadata

Each tracked object is represented by a TrackOutput, which includes the following fields:

  • track_id
    System-assigned unique identifier for this track. It remains consistent throughout the life of the track.

  • created_at
    The time stamp when this track was first created.

  • updated_at
    The time stamp of the last update.

  • measurement_id
    The ID of the most recent detection associated with this track.

  • lifetime
    Total number of update cycles this track has existed (including both matched and missed updates).

  • total_updates
    Number of total updates in which a measurement has been associated to the track.

  • total_missed_updates
    Number of total missed updates in which a measurement has not been associated to the track.

  • consecutive_updates
    Number of consecutive updates in which this track was successfully matched to a detection. Resets if missed.

  • consecutive_missed_updates
    Number of consecutive cycles where this track was not matched. Used to determine if the track should be terminated.

  • status
    The current state of the track. It can be labeled as:

    • new: Just created and not yet confirmed.
    • active: Confirmed and being actively tracked.
    • lost: No longer an active track after many missed updates.
  • label
    The most recent classification label assigned from the associated detection (e.g., "vehicle", "person").


State

  • measurement
    The latest measurement's serialized state.

  • measurement_uncertainty
    The covariance matrix of the latest measurement.

  • predicted_estimated_state
    The tracker's a priori estimate before incorporating the latest measurement.

  • estimated_state
    The posterior estimate after measurement update.

  • estimated_state_uncertainty
    The state error covariance matrix of the track.


Geolocation

  • latitude / longitude
    If the tracker kind uses GPS data (e.g., point_latitude_longitude, point_utm, or box_latitude_longitude), these fields represent the track's current estimated real-world location.

Assignment

  • cost
    The final assignment cost between this track and its last matched detection. Depending on the assignment function, this could be:
    • 1 - IoU (for bounding boxes)
    • Euclidean distance (for unitless points or UTM points)
    • Haversine distance (for latitude/longitude)